#pragma once
#include "..\Shared\Defines.h"
#include "..\Shared\Container.h"

template<>
Container<Value>::Container();
template<>
Value& Container<Value>::operator[] (const Value &Index) const;

Container<Value> SpiltString(const Value &String, const char *Delims);

class Command
{
public:
	Command();
	Command(const Command &Source);
	~Command();
	Command & operator = (const Command &Source);
	//char plugin[PLUGINNAMELEN];
	Value name;
	Container<Value> Arguments;
	Container<Value> Returns;
	Value ToSendableString();
	void SetFromSendableString(Value &String);
protected:
	void Copy(const Command &Source);
};